------------ Quick sort ------------ Sorts an array of values using quick sort; https://en.wikipedia.org/wiki/Quick_sort function quicksort(a, lo, hi) if lo < hi then local p=partition(a,lo,hi) quicksort(a,lo,p) quicksort(a,p+1,hi) end end function partition(a, lo, hi) local max=#collection local pivot=a[lo] local i=lo local j=hi while true do while a[i] < pivot do i=i+1 end while a[j] > pivot do j=j-1 end if (i>=j) return j swap(a,i,j) end end